#ifndef POINT_H
#define POINT_H

#include <gmpxx.h>
#include "sign.h"
#include <limits>
#include <cmath>

const double meps = 8 * std::numeric_limits<double>::epsilon();

struct point
{
    double x, y;
    point();

    point(double x_, double y_);
    bool operator == (const point& );
    bool operator != (const point& );
};

sign left_turn(const point& p1, const point& p2, const point& p3);
sign long_left_turn(const point& p1, const point& p2, const point& p3);

std::istream& operator >>(std::istream&, point&);
std::ostream& operator <<(std::ostream&, const point&);

#endif // POINT_H
